document.addEventListener('DOMContentLoaded', function () {
    // 获取URL中的商品ID
    const urlParams = new URLSearchParams(window.location.search);
    const productId = urlParams.get('id');

    if (productId) {
        fetchProductDetails(productId);
    } else {
        alert('未找到商品ID');
        window.location.href = 'index.html';
    }

    // 加入购物车按钮点击事件
    document.getElementById('addToCartBtn').addEventListener('click', function () {
        if (addToCart(productId)) {
            alert('商品已加入购物车');
        } else {
            alert('请先登录');
        }
    });
});

function fetchProductDetails(productId) {
    // 获取商品详情
    fetch(`/api/products/${productId}`)
        .then(response => {
            if (!response.ok) {
                throw new Error('获取商品详情失败');
            }
            return response.json();
        })
        .then(product => {
            const productDetails = document.getElementById('productDetails');
            productDetails.innerHTML = `
                <img src="${product.image}" alt="${product.name}" class="product-image">
                <h2 class="product-name">${product.name}</h2>
                <p class="product-price">¥${product.price.toFixed(2)}</p>
                <p class="product-stock">库存: ${product.stock}</p>
                <p class="product-created-at">上架时间: ${new Date(product.createdAt).toLocaleString()}</p>
                <div class="product-description">${product.description}</div>
            `;
        })
        .catch(error => {
            console.error('获取商品详情出错:', error);
            alert('获取商品详情失败，请稍后再试');
        });
}

function addToCart(productId) {
    // 检查用户是否已登录
    const token = localStorage.getItem('token');
    if (!token) {
        return false;
    }

    // 获取用户ID（简化处理，实际项目中应从令牌中解析）
    const userId = 1; // 示例用户ID

    // 添加到购物车
    fetch('/api/cart/add', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({userId, productId, quantity: 1}),
    })
        .then(response => {
            if (!response.ok) {
                throw new Error('加入购物车失败');
            }
            return response.json();
        })
        .then(data => {
            console.log('加入购物车成功:', data);
            return true;
        })
        .catch(error => {
            console.error('加入购物车出错:', error);
            return false;
        });
}